Method and apparatus for performing deblocking filtering with interlace capability

ABSTRACT

A method and apparatus are disclosed for adaptively selecting a deblocking filter used in video de-blocking. Determinations are made as to whether each of a set of spatially adjacent video blocks is inter-coded or intra-coded and whether each of said adjacent video blocks is field-coded or frame-coded. A deblocking filter is selected (an interlace deblocking filter or a frame deblocking filter) based on the determinations. The selected deblocking filter is used to filter across a boundary between adjacent video blocks.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] The applicants claim priority based on provisional application No. 60/324,300 filed Sep. 24, 2001, the complete subject matter of which is incorporated herein by reference in its entirety.

BACKGROUND OF THE INVENTION

[0002] Certain embodiments of the present invention relate to the process of filtering video data. More specifically certain embodiments relate to adaptively filtering reconstructed blocks of video data, comprising both frame-coded and field-coded blocks, in order to improve coding efficiency and image quality as part of the de-blocking process.

[0003] Various video compression schemes use different sizes of blocks of pixels. For example MPEG-2 uses a 16×16 block of pixels (referred to as a “macroblock”). One motivation for creating the MPEG-2 standard was to support interlaced video. MPEG-2 targets coding for broadcast-quality video. Therefore, it is desired to digitize the source video at full bandwidth, resulting in even and odd fields. The two fields are separated in time and MPEG-2 provides a way of coding interlaced fields by including field-based prediction techniques.

[0004] A coded representation of a video picture may be reconstructed to a frame or a field. During the encoding process, an encoder codes a frame as one picture frame or two field pictures. For encoding as two field pictures, each field is coded independently of the other. In other words, the two fields are coded as if they are two different pictures.

[0005] For frame pictures, each macroblock may be predicted (using motion compensation) on a frame or field basis. Frame-based prediction uses one motion vector per direction (forward or backward) to capture the motion with respect to a reference frame. Field-based prediction uses two motion vectors, one for each field. As a result, there may be up to four vectors (two per direction) per macroblock.

[0006] Some coding standards, such as H.263 and H.26L, make use of a de-blocking filter in the coding and decoding loop in order to reduce blocking artifacts at the edges where one block interfaces to another. The de-blocking filter may take on a variety of forms depending on the standard. However, deblocking filtering generally involves processing of pixels along the video block edges spanning across neighboring block boundaries in both horizontal and vertical directions.

[0007] A set of reconstructed video blocks may be filtered to improve the image quality across the boundaries of the blocks during the video deblocking process.

[0008] Current standards making use of deblocking filters are based on progressive video content (frame-coded). Particularly in the case of loop filtering, the horizontal and vertical edges of the block consists of pixels that are correlated in both horizontal and vertical directions in the sense that they have been sampled at the same frame-time. This is the normal result of the fact that progressive video is being processed. Known prior art involving deblocking filtering does not, however, deal with field-coded blocks (interlaced fields).

[0009] Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with the present invention as set forth in the remainder of the present application with reference to the drawings.

BRIEF SUMMARY OF THE INVENTION

[0010] An embodiment of the present invention adaptively selects the type of deblocking filter to use (frame filtering or interlace filtering) along with the corresponding set of filter coefficients for a given boundary between two adjacent reconstructed blocks of video data. An embodiment of the present invention provides the adaptive deblocking filter selection by, at least in part, determining whether blocks are frame-coded or field-coded.

[0011] A method is provided for adaptively selecting a deblocking filter used in video de-blocking. The method determines whether each of a set of spatially adjacent video blocks is inter-coded or intra-coded and then determines if each of said adjacent video blocks is field-coded or frame-coded. A deblocking filter is selected (an interlace deblocking filter or a frame deblocking filter) based on the determinations. The selected deblocking filter is to be used to filter across a boundary between adjacent video blocks.

[0012] Also, apparatus is provided for adaptively selecting and employing a deblocking filter used in video de-blocking. The apparatus comprises a deblocking filter selection module responsive to at least video block data and video header data to select a deblocking filter. Also, the apparatus comprises a deblocking filter module to be used to filter across a corresponding boundary between adjacent video blocks.

BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS

[0013]FIG. 1 is an illustration of a set of adjacent blocks of video pixels and how to filter across boundaries between the blocks in accordance with an embodiment of the present invention.

[0014]FIG. 2 is a flowchart of a method for adaptively selecting a deblocking filter used in video de-blocking the set of adjacent blocks of video pixels in FIG. 1 in accordance with an embodiment of the present invention.

[0015]FIG. 3 is a schematic block diagram of an apparatus for performing the method of FIG. 2 in accordance with an embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

[0016]FIG. 1 is an illustration of a set 10 of adjacent blocks of video pixels and how to filter across boundaries between the blocks in accordance with an embodiment of the present invention. Each video block is coded in either a frame mode (e.g. block 30) or field mode (e.g. block 20).

[0017] A possible solution for coding interlaced pictures is to simply code the fields as separate pictures so that all blocks in the field are field-coded. However, this may have drawbacks of reduced coding efficiency and picture quality. Another possible solution is to code each block in a given frame with independent selections per block of either a progressive entity (“frame coded”) or as an interlaced entity containing lines from two fields (“field coded”).

[0018] Frame coded blocks are the default for progressive video coding standards. In field mode blocks in frame pictures, half the lines in the block are generated from one field of video and the other half of the lines come from the other field which may necessitate special procedures if deblocking filtering is to be used.

[0019] To support both field-coded and frame-coded blocks in the same frame picture, there may be a problem with deblocking filtering at the interfaces between adjacent blocks where a block on one side of the interface is field coded and a block on the other side of the interface is frame coded. There may be problems in both the horizontal and vertical directions, but it is particularly difficult in the vertical direction since adjacent lines in the frame are not from the same sampling time, i.e., adjacent frame lines (and therefore block lines) belong to different fields. The situation is illustrated in FIG. 1, where the gray lines of pixels denote data that has been frame-coded (e.g. block 30), while the black and white lines denote lines of pixels that have been coded as separate fields (e.g. block 20).

[0020] Support of interlaced (field-coded) blocks with deblocking is provided by an embodiment of the present invention. One aspect of the present invention is the performance of deblocking filtering across an interface between a frame-coded block and a field-coded block, with different filtering modes and selections of lines to be filtered depending on the field or frame coded type of each block, as well as on other parameters, for example.

[0021] Regardless of how a particular standard specifies the performance of deblocking filtering, the pixels across the block edges are analyzed and processed and, given certain results from the analysis, the actual values of the edge pixels are changed with the goal of reducing block coding artifacts.

[0022] One solution in accordance with an embodiment of the present invention involves examining whether vertically adjacent blocks are coded as separate fields in order to program the filter and analysis windows to handle the field data independently as appropriate. It may be assumed that if a block has been field-coded there must have been a good reason on the part of the encoder to make the choice, i.e., there was inter-field motion in the video being encoded.

[0023]FIG. 2 illustrates a method of determining the type of deblocking filtering to be employed, in accordance with an embodiment of the present invention. First, in step 100, determinations are made whether adjacent blocks (e.g., top and bottom) were inter-coded or intra-coded and field-coded or frame-coded. Blocks that are inter-coded are dependent on previous and/or subsequent frames of video data (temporal dependency) and typically have motion vectors associated with them. Blocks that are intra-coded are dependent only on the current frame of data and do not have motion vectors associated with them.

[0024] Field-coded blocks typically have two motion vectors associated with them, one for each field. Frame-coded blocks typically have only one unique motion vector associated with them. Again, only blocks that are inter-coded have motion vectors associated with them. The motion vectors and indications of whether a block is inter-coded or intra-coded and frame-coded or field-coded are contained in the video header data that is associated with each video block of data.

[0025] In step 110, the previous determinations are used to help select between interlace deblocking filtering and frame deblocking filtering. For example, certain indications contained in the header data, such as whether a video block is frame-coded or field-coded, may be used. Also, the length of the filter and the exact filter coefficients to be used may be determined, in part, by the previous determinations and others information such as, for example, the size of the video blocks (e.g. 16 pixels by 16 pixels).

[0026]FIG. 3 is a schematic block diagram of an apparatus 200 for performing the method of FIG. 2 in accordance with an embodiment of the present invention. Typically, the apparatus 200 is integrated and embedded into an ASIC chip that performs video processing. The apparatus 200 comprises a deblocking filter selection module 210 and a deblocking filter module 220.

[0027] Video data (header data and video block data) are input to the deblocking filter selection module 210. Deblocking filter selection module 210 determines which blocks are inter-coded or intra-coded and which blocks are frame-coded or field-coded. Deblocking filter selection module 210 interfaces to deblocking filter module 220 which performs deblocking filtering across the boundaries of adjacent blocks.

[0028] In an embodiment of the present invention, the deblocking filter selection module 210 also selects the length of the filter and the corresponding filter coefficients to be used based on information in bit stream. The selected information is sent to the deblocking filter module 220 where the adjacent video blocks are subsequently filtered.

[0029] The various elements of the apparatus may be combined or separated according to various embodiments of the present invention. For example, the deblocking filter selection module 210 and the deblocking filter module 220 may be implemented as a single processing element instead of as two discrete elements interfacing to each other.

[0030] In an embodiment of the present invention, the pixels along vertically-oriented edges (e.g. 12, see FIG. 1) between dissimilar field and frame coded blocks are processed by adaptively filtering the edge of one field in the field-coded block with the corresponding lines in the adjacent frame-coded block, and also adaptively filtering the edge of the other field in the field-coded block with its corresponding lines in the adjacent frame-coded block (see FIG. 1).

[0031] In certain embodiments of the present invention, the horizontal filter and analysis window 70 is the same whether the adjacent blocks have been coded as frames or fields. In other embodiments of the present invention, the filter operation on vertical edges may differ, for example, if the filter processes a 2-dimensional set of pixels.

[0032] When processing the horizontally-oriented edges, a vertical filter and analysis window 40 is used which takes into account whether adjacent blocks (above or below the edge) are field-coded or frame-coded. In an embodiment of the present invention, if vertically adjacent blocks (either top neighbor or bottom neighbor) differ in the way they were coded (progressive or interlace, i.e., frame or field coded) two separate versions of the filter and analysis window may be used, one for each field (50 and 60 in FIG. 1). The top field lines of both blocks are processed separately from the bottom field lines (see, e.g., vertical filters 50 and 60 in FIG. 1).

[0033] In FIG. 1, the filter and analysis window for pixels in the frame-coded blocks in the same frame is denoted as {A, B, C, D, E, F, G, H} 40 (assuming in the example a maximum window of eight pixels, four at each side of the block edge—the same method is readily extended to different numbers of pixels). The same filter and analysis window (but oriented horizontally 70) may also be used for the vertical edge (horizontal filter/analysis) regardless of frame or field coding.

[0034] For the cases where either top or bottom neighboring blocks are field-coded, the 8-pixel window may be separated into two 4-pixel windows: {a, b, c, d} 60 for the top field and {A, B, C, D} 50 for the bottom field. As may be seen in FIG. 1, the frame-coded block 25 is separated into top field and bottom field portions to match the field-coded block 26. For an 8-tap window, all 4 positions on one side may be used, particularly for frame coded macroblocks, while either 2 of the 4 taps on the other (e.g. field coded) side may be used. Equivalently, pixels from one field of the field coded block on the field coded side of the boundary may use, for example, all 4 positions on that side of the filter window.

[0035] The method described above implies that the actual filter length for vertically adjacent blocks in which any neighbor was field-coded is half the size of the filter for frame-coded blocks. However, different sets of coefficients may be used for the field-coded edges and it is not necessary that the field-coded version of the filter be half the size of the frame-coded version.

[0036] Variations are possible using longer or shorter filters, different coefficients, or a different selection of pixels in the filter. For example, in the case of H.26L Filtering, the changes to handle interlace with minimal changes to the specification from September 2001 (TML-8) may involve only processing four edge pixels (p2, p1, q1, q2). In cases where p3 or q3 are used in the formulas, they may be substituted for p1 and q1, respectively.

[0037] In summary, the interlaced deblocking filter of certain embodiments of the present invention allows the use of modern interlaced coding methods in digital video compression methods, while simultaneously supporting high quality deblocking filtering, for best quality visual results.

[0038] While the invention has been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from its scope. Therefore, it is intended that the invention not be limited to the particular embodiment disclosed, but that the invention will include all embodiments falling within the scope of the appended claims. 

1. A method of selecting a deblocking filter used in video processing, said method comprising: determining whether each of a set of spatially adjacent video blocks is field-coded or frame-coded; and selecting one of interlace deblocking filtering and frame deblocking filtering, based on said determining, to be performed across at least one boundary between said adjacent video blocks.
 2. The method of claim 1 further comprising determining whether each of said set of spatially adjacent video blocks is inter-coded or intra-coded.
 3. The method of claim 1 wherein said determining comprises reading video header data associated with each of said adjacent video blocks, wherein said video header data indicates inter-coded or intra-coded and field-coded or frame-coded.
 4. The method of claim 1 wherein said selecting comprises choosing interlace deblocking filtering if at least one said spatially adjacent video block is field-coded.
 5. The method of claim 1 wherein said interlace deblocking filtering comprises generating at least one filtered video sample on at least one side of said boundary between said adjacent video blocks by performing digital filtering on every other video sample, of a predetermined number of video samples, across said boundary.
 6. The method of claim 5 wherein a set of video filter input samples comprises said every other video sample and corresponds to a video field of two interlaced video fields.
 7. The method of claim 1 wherein said interlace deblocking filtering comprises generating at least one filtered video sample on at least one side of said boundary between said adjacent video blocks by performing digital filtering on a predetermined number of contiguous video samples across said boundary, and wherein said digital filtering applies a set of filter coefficients to said predetermined number of contiguous video samples such that every other filter coefficient of said set of filter coefficients is zero.
 8. The method of claim 1 wherein said frame deblocking filtering comprises generating at least one filtered video sample on at least one side of said boundary between said adjacent video blocks by performing digital filtering on a predetermined number of contiguous video samples across said boundary.
 9. Apparatus for selecting a deblocking filter used in video processing, said apparatus comprising: a deblocking filter selection module responsive to video bit stream data for selecting at least one deblocking filter associated with a set of spatially adjacent video blocks; a deblocking filter module responsive to said selecting to perform filtering across at least one boundary of at least two adjacent video blocks of said set of spatially adjacent video blocks.
 10. The apparatus of claim 9 wherein said video bit stream data comprises at least one of: motion vectors; an indication of whether each of said adjacent video blocks is inter-coded or intra-coded; and an indication of whether each of said adjacent video blocks is field-coded or frame-coded.
 11. The apparatus of claim 9 wherein said selecting comprises selecting a filter type indicator and a set of corresponding filter coefficients wherein said filter type indicator indicates a frame deblocking filter or an interlace deblocking filter.
 12. The apparatus of claim 11 wherein said interlace deblocking filter generates at least one filtered video sample on at least one side of said at least one boundary between said at least two adjacent video blocks by performing digital filtering on every other video sample, of a predetermined number of video samples, across said at least one boundary.
 13. The apparatus of claim 12 wherein a set of video filter input samples comprises said every other video sample and corresponds to a video field of two interlaced video fields.
 14. The apparatus of claim 11 wherein said interlace deblocking filter generates at least one filtered video sample on at least one side of said at least one boundary between said at least two adjacent video blocks by performing digital filtering on a predetermined number of contiguous video samples across said at least one boundary, and wherein said digital filtering applies a set of filter coefficients to said predetermined number of contiguous video samples such that every other filter coefficient of said set of filter coefficients is zero.
 15. The apparatus of claim 11 wherein said frame deblocking filter generates at least one filtered video sample on at least one side of said at least one boundary between said at least two adjacent video blocks by performing digital filtering on a predetermined number of contiguous video samples across said at least one boundary.
 16. The apparatus of claim 9 wherein said apparatus is integrated and embedded into an ASIC chip used in video processing. 